import { ComponentWithStore } from "mobx-miniprogram-bindings"
import {userStore} from "../../store/userstore"
import {reqLogin,reqUserInfo} from '../../api/user'
import {toast} from '../../utils/extendApi'
import {getStorage,setStorage} from '../../utils/storage'
ComponentWithStore({
    storeBindings:{
        store:userStore,
        fields:['token','userInfo'],
        actions:['setToken','setUserInfo']
    },
    /**
     * 页面的初始数据
     */
    data: {
        isChecked:false,
        userPhone: '',
        userPwd: '',
    },
    methods:{
        login() {
            wx.login({
              success: async ({ code }) => {
                console.log('wx.login code:', code);
                if (code) {
                  try {
                    const res = await reqLogin(code);
                    console.log('login response:', res);
                    //假设接口返回格式为 { data: { token, openid } }
                    if (res && res.data.token) {
                      // 本地存储 token
                      setStorage('token', res.data.token);
                      // 更新 store 状态
                      this.setToken(res.data.token);
                      // 之后可以调用获取用户信息接口
                      await this.getUserInfo();
                      //跳转到上一页面
                      wx.switchTab({
                        url: '../owner/owner',
                      })
                    } else {
                      toast({ title: '登录失败：服务器未返回 token' });
                    }
                  } catch (error) {
                    console.error('登录请求异常:', error);
                    toast({ title: '登录请求异常，请稍后重试' });
                  }
                } else {
                  toast({ title: '授权失败，请稍后重试' });
                }
              },
              fail(err) {
                console.error('wx.login 失败:', err);
                toast({ title: '微信登录失败' });
              }
            });
          },
          // 获取用户信息
          async getUserInfo() {
            try {
              const res = await reqUserInfo();
              console.log("获取到的用户信息",res);
              if (res && res.data) {
                setStorage('userInfo', res.data);
                // 存userId
                setStorage('userId',res.data.id);
                this.setUserInfo(res.data);
              } else {
                toast({ title: '获取用户信息失败' });
              }
            } catch (error) {
              console.error('获取用户信息异常:', error);
              toast({ title: '获取用户信息异常，请稍后重试' });
            }
          }
        }
})